import {
  ADDCOUNT,
  ADDITEM
} from './mutation-type.js'
export default {
  addCart(context, playload) {
    // 要让外面知道vuex的执行结果 必须返回一个promise
    return new Promise((reslove, reject) => {
      //  购物车不会重复显示多个同样的商品，所以在commit之前需要判断一下
      // find函数找出已经存在的对象的引用 赋值给oldinfo
      const oldInfo = context.state.cartList.find(item => item.iid === playload.iid)
      if (oldInfo) {
        // 这个oldinfo仍然指向原来数组里面元素的地址值 数组、对象、方法都是引用传递
        // oldInfo.count += 1

        // 规范写法 要传到mutation去执行上面那一行代码
        context.commit(ADDCOUNT, oldInfo)
        reslove('商品数量+1')
      } else {
        context.commit(ADDITEM, playload)
        reslove('商品添加成功')
      }
    })

  }
}
